package graphicEval;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class Readr {

	//PFad zur Datei
	private String location;

	public Readr(String location) {

		this.location = location;

	}
	
 //auslesen der Datei
	public String readAll() throws IOException {
		String everything = "";
		BufferedReader br = new BufferedReader(new FileReader(location));
		try {
			StringBuilder sb = new StringBuilder();
			String line = br.readLine();

			while (line != null) {
				sb.append(line);
				sb.append(System.lineSeparator());
				line = br.readLine();
			}
			everything += sb.toString();
		} finally {
			br.close();
		}
		return everything;
	}

	/**
	 * Die gelesene Datei als String eingeben, ArrayList<ArrayList<Punkt>> erhalten,
	 *  in welcher die Punkte gespeichert sind welche nachher in der Graphischen 
	 *  Auswertung dargestellt werden.
	 */
	public ArrayList<ArrayList<Punkt>> lexer(String s) {
		ArrayList<Punkt> aL = new ArrayList<Punkt>();
		ArrayList<ArrayList<Punkt>> aLL = new ArrayList<ArrayList<Punkt>>();
		Punkt p;
		double x;
		double y;
		int nodes;
		s.trim();
		String[] strings = s.split(" ");

		for (int j = 0; j < strings.length; j++) {
			if (strings[j].equals("N")) {
				for (int i = j; i < strings.length; i++) {
					try {
						nodes = new Integer(strings[i].trim());
						x = new Double(strings[i + 1].trim());
						y = new Double(strings[i + 2].trim());
						p = new Punkt(nodes, x, y);
						aL.add(p);
						i++;
						i++;
					} catch (Exception e) {
					}

				}
				aLL.add(aL);
				aL = new ArrayList<Punkt>();
			}

		}

		return aLL;

	}



}
